﻿function Translator()
{
	this.inLang = "English";
	this.outLang = "Russian";
	this.translate = function(inId, outId)
	{
		var src_txt = $(inId).value;
		
		/* Пустые строки не надо переводить */
		if (src_txt.length == 0)
		{
			outputPost("");
			return;
		}
		
		if (!checkLangAPIFileLoaded())
		{
			return;
		}
		
		if (src_txt.length > 1900)
		{
			// 1917 gadget
			// 1921 ie
			// 1939 ff
			outputPostErr("the string to be translated exceeds the maximum length allowed.");
			return;
		}
		
		/* На случай, если интернеты отвалятся посреди работы гаджета */
		var done = false;
		setTimeout(function() {				
			if (!done)
			{
				outputPostErr("lost connection to the Internet.");
			}
		}, 3000);
		
		/* Перевод пошёл */
		google.language.translate(src_txt, langs.codes[this.inLang], langs.codes[this.outLang], function(result) {
			if (!result.error)
			{
				outputPost(result.translation);
			}
			else
			{
				outputPostErr(result.error.message);
			}
			done = true;
		});
	};
	
	this.setInLang = function(langName)
	{
		this.inLang = langName;
	}
	
	this.setOutLang = function(langName)
	{
		this.outLang = langName;
	}
	
	this.switchLangs = function()
	{
		var tmp = this.inLang
		this.inLang = this.outLang
		this.outLang = tmp;
	}
}